API’s

O que são API’s?

Definição

  • API é a sigla para Application Programming Interface.

  • É uma interface de comunicação que um sistema oferece para que outros sistemas acessem suas funções, dados, serviços e recursos.

  • Possibilitam utilizar funções de um aplicativo dentro de outro, facilitando o trabalho dos desenvolvedores.

  • Permitem o acesso a dados, sem a necessidade de raspagem de superfície (scraping) ou coleta manual.

Tipos de API

API’s privadas

São internas de uma empresa e são usadas apenas para conectar sistemas e dados dentro da empresa.

API’s públicas

São abertas ao público e podem ser usadas por qualquer pessoa.

Pode ou não haver alguma autorização e/ou custo associado a esses tipos de APIs.

API’s de parceiros

Acessíveis apenas por desenvolvedores externos autorizados, em nome de empresas parceiras.

Como funcionam?

Visão geral

  • As APIs funcionam através de um protocolo, um conjunto de instruções, padrões e regras que definem como os sistemas devem se comunicar.

  • Elas estabelecem métodos de requisição, formatos de dados a serem recebidos ou retornados, autenticação e autorização de acesso, entre outros aspectos técnicos.

  • Quando um software utiliza uma API, ele envia uma requisição seguindo as diretrizes estabelecidas pela interface, e em resposta recebe os dados ou realiza as ações desejadas.

Etapas

  1. Uma requisição é enviada ao sistema que disponibiliza uma API (servidor) por um cliente (que pode ser um navegador, um aplicativo móvel ou outro servidor). Geralmente segue o protocolo HTTP (Hypertext Transfer Protocol).

  2. O servidor faz o processamento da requisição, que pode envolver uma consulta a uma base de dados ou acesso a outras funcionalidades.

  3. O servidor envia uma resposta ao cliente. Geralmente inclui um código de status, indicativo de sucesso ou falha na requisição, e os dados solicitados.

Métodos de requisição HTTP

Os principais métodos de requisição são:

  • get: requisição para obter, visualizar ou extrair dados;

  • post: requisição para criar ou enviar novos dados;

  • put: requisição para editar ou atualizar dados;

  • delete: requisição para remover dados.

Requisições e chaves de acesso

  • É comum que alguns sistemas exijam o uso de chaves para limitar e controlar a quantidade de requisições de acesso.

  • Essa medida visa a segurança do próprio sistema, garantindo a sua disponibilidade e evitando por exemplo ataques de negação de serviço (DoS).

Requisições e chaves de acesso

  • Além de ajudar a detectar atividades suspeitas, as chaves de acesso também servem para identificar, monitorar e registrar quem consome a API, a fim de obter insights a respeito dos padrões de uso do serviço e aprimorá-lo.

  • Alguns sistemas monetizam o consumo das API’s.

  • Ainda assim, alguns sistemas permitem que sejam feitas requisições keyless.

Endpoints

  • Endpoints são funções ou recursos da API que, dado sua estrutura hierárquica (aninhada, ou em árvore), podem ser acessadas diretamente pelo sistema cliente.

  • Para acessar um endpoint específico dentro de uma API, basta utilizarmos o URL (Uniform Resource Locator) principal da API seguido do caminho correspondente a esse endpoint.

Endpoints

Placeholders

É comum utilizarmos chaves {} como placeholders ao nos referirmos a endpoints.

Parâmetros de consulta

Podemos, ainda utilizar parâmetros simples de consulta para filtrar os resultados de uma requisição. Ex.:

/usuarios?sexo=masculino

JSON

  • Ao fazer uma requisição, os dados geralmente retornam em arquivos no formato JSON (Java Script Object Notation)

  • Padrão de indústria

Vantagens

  • Permite o acesso e o armazenamento de diferentes tipos de dados

  • Permite a interoperabilidade do formato entre tantos frameworks e linguagens diferentes

  • É facilmente legível tanto por máquinas quanto por humanos

  • Estruturação hierárquica (conjunto chave-valor dentro de chaves)

Desvantagens

  • Ausência de Data Type

  • Sem comentários

XML

  • Outro formato de arquivo comumente utilizado nesses casos é o XML

Vantagens

  • Melhor para trabalhar com grandes quanrtidades de dados

  • Permite comentários

Desvantagens

  • Mais pesado e menos legível para humanos

  • Menos flexível

Exemplos

Keyless

PokéAPI

  • Inicialmente, para mostrar de forma mais didática as etapas do processo de requisição, utilizaremos uma API pública sem chave que disponibiliza as informações de todos os pokemons presentes nos jogos.

  • PokéAPI

API OpenAI

API OpenWeather

Site com várias API’s públicas

Referências